# Using Dagster with X

Here you should include one short sentence about the guide .

<div className="w-full h-48 bg-gray-50 flex items-center justify-center">
  Cover Image
</div>

## Relevant APIs

| Name                                                   | Description            |
| ------------------------------------------------------ | ---------------------- |
| <PyObject module="dagster_dbt" object="dbt_cli_run" /> | Description of the API |

---

## Description of X by itself

<div className="w-full h-48 bg-gray-200 flex items-center justify-center">
  ...
</div>

---

## Explanation of how X relates to Dagster

- Explain how Dagster relates to X, e.g.

  - Dagster orchestrates X (ex: Spark, Dask)
  - Dagster uses X to query data (ex: Bigquery, Snowflake)
  - Dagster uses X to materialize data (ex: IO managers with Bigquery, S3, Snowflake)
  - Dagster produces a side effect with X (ex: Slack, Pagerduty)

- Explain what Dagster concepts are used with X (ex: Resource, IOManger, library solid)

- If applicable, include diagrams and links to Dagster concepts

## Walkthrough of how to use X with Dagster

- Setup

  - Setup X
    - What is the minimal amount of credentials/config from X that Dagster will need?
    - What is a checkpoint where the user can confidently continue?
      - for example, running X --version or X run --dry-run succeeds
  - Install dagster-X package (include a link to API Docs)

- Quickstart example
  - Write example code that uses both Dagster and X
  - Show how to actually run the example code

## Productionizing

- If applicable, demonstrate how to deploy X (link to deployment guides if applicable)
- Demonstrate how to set up modes to use with X (test, dev, staging, prod)
  - A mocked version of X
  - Write tests against test mode

## Advanced Configuration

- Demonstrate how components within X can be configured/customized from Dagster
- For example, if the dagster integration exposes a config schema that allows the user to pass through arguments to the underlying X

## Advanced Use Cases

- For “solid libraries”

  - How to run an X solid/pipeline on a schedule
  - How to add a hook for when the X solid/pipeline finishes/fails/succeeds
  - How to chain an X solid with other arbitrary solids

- For “resource libraries”
  - How to create a custom IOManager that uses X resource

## Conclusion

- Further learning materials, e.g. Dagster blogs or talks, X’s docs
